package models_live

import (
	"fmt"
	"longmen/server/pkg/db/mysql/models"
	"time"
)

type Live struct {
	Anchorid    int    `json:"anchorid" gorm:"primaryKey"` //主播ID
	Liveid      int64  `json:"liveid"`                     //直播ID
	Title       string `json:"title"`                      //直播标题
	EventTitle  string `json:"event_title"`                //联赛
	Thumb       string `json:"thumb"`                      //直播封面
	ThumbY      string `json:"thumb_y"`                    //直播纵向封面
	Stream      string `json:"stream"`                     //流名
	PullUrl     string `json:"pull_url"`                   //播流地址
	PullFlvUrl  string `json:"pull_flv_url"`               //flv格式视频地址
	Animation   int    `json:"animation"`                  //1是动画，2否
	Categoryid  int    `json:"categoryid"`                 //直播分类
	Orientation int    `json:"orientation"`                //1-横屏 2-竖屏'
	StartStamp  int64  `json:"start_stamp"`                //开播时间戳
	EndStamp    int64  `json:"end_stamp"`                  //结束时间
	RecWeight   int    `json:"rec_weight"`                 //主播的推荐值
	Password    string `json:"password"`                   //房间密码 md5加密
	Price       int    `json:"price"`                      //收费标准(分钟)
	RoomType    int    `json:"room_type"`                  //房间类型:0-普通房间 1-私密房间 2-付费房间',
	Profit      int    `json:"profit"`                     //实时收入钻石数
	Status      int    `json:"status"`                     //直播状态1:直播中 2:預約 3:取消預約 4:逾期未播 5:結束
	//RecSwitch   int    `json:"rec_switch"`                 //推荐开关
	//schedule_time
	//use_video
	//introduction
	Type         string `json:"type"`          //拉流格式 m3u8:hls mpd:dash flv:flv mp4:auto'
	Matchid      int    `json:"matchid"`       //赛事ID
	SportType    string `json:"sport_type"`    //赛事类别
	Category     int    `json:"category"`      //类别,
	AnchorName   string `json:"anchor_name"`   //主播名,
	AnchorAvatar string `json:"anchor_avatar"` //主播头像,
	Platform     int32  `json:"platform"`      //0web 1安卓 2ios 3后台发起

	OfficialType      int    `json:"official_type"`                 //是否是官方直播间:0-默认,1-官方直播间
	Md5hash           string `json:"md5hash"`                       //
	Hot               int    `json:"hot"`                           //热度
	GiftType          int    `json:"gift_type"`                     //0普通礼物，1尊享礼物，2活动礼物
	Tag               int64  `json:"tag"`                           //标签ID（管关联db_config_tag表）
	BaseHot           int    `json:"base_hot"`                      //基础热度
	Isattent          int32  `json:"isattent" gorm:"<-:false"`      //是否关注//gorm:"-"
	PullFlvUrl2       string `json:"pull_flv_url2" gorm:"<-:false"` //低清晰度//gorm:"-"
	PullM3u8Url       string `json:"pull_m3u8_url" gorm:"<-:false"` //m3u8源
	PullRtmpUrl       string `json:"pull_Rtmp_url" gorm:"<-:false"` //rtmp源
	Ticket            int    `json:"ticket"`                        //直播门票
	TicketPaid        int    `gorm:"-" json:"ticket_paid"`          // 1已支付门票，2否
	PlayFromSource    int32  `json:"play_from_source"`
	ReplyVideo        int32  `json:"reply_video"`
	WatermarkPosition string `json:"watermark_position"` // r:dafult right,l:left
	ActivityToggle    int32  `json:"activity_toggle"`
	OpenChatNum       int    `json:"open_chat_num"`
	SendChatNum       int    `json:"send_chat_num"`
	SkipTime          int32  `json:"skip_time"`
	// webrtc
	EnableWebrtc int32  `json:"enable_webrtc"`
	PullWebRTC   string `gorm:"-" json:"pull_webrtc"` // webrtc接口
}

type LiveBaseData struct {
	Anchorid     int        `json:"anchorid" gorm:"primaryKey"` //主播ID
	Liveid       int64      `json:"liveid"`                     //直播编号
	Title        string     `json:"title"`                      //直播标题
	Thumb        string     `json:"thumb"`                      //varchar(255) DEFAULT NULL COMMENT '直播封面',
	ThumbY       string     `json:"thumb_y"`                    //varchar(255) DEFAULT NULL COMMENT '直播纵向封面',
	PullUrl      string     `json:"pull_url"`                   //varchar(255) DEFAULT NULL COMMENT '播流地址',
	Hot          int        `json:"hot"`                        //int(11) DEFAULT 0 COMMENT '热度',
	Status       int        `json:"status"`                     //1:直播中 2:預約 3:取消預約 4:逾期未播 5:結束
	SportType    string     `json:"sport_type"`                 //varchar(100) DEFAULT NULL COMMENT '体育型别'
	StartTime    *time.Time `json:"start_time"`                 //datetime DEFAULT NULL
	Matchid      int        `json:"matchid"`                    //int DEFAULT NULL COMMENT 'db_xxxxx_match.id',
	AnchorName   string     `json:"anchor_name"`                //主播名,
	AnchorAvatar string     `json:"anchor_avatar"`              //主播头像,
	OfficialType int        `json:"official_type"`              //int(3) COMMENT '0:默认，1:官方直播间'
}

type LiveINRedis struct {
	ViewerCount      string `json:"viewer_count"`       //总人数
	BarrageTimeCount string `json:"barrage_time_count"` //最高同时在线
	Hot              string `json:"hot"`                //热度
	GiftTotalPrice   string `json:"gift_total_price"`   //礼物总价值
	GiftTotalNum     string `json:"gift_total_num"`     //礼物总数
	TextMessage      string `json:"text_message"`       //消息总数

}

func (l *Live) TableName() string {
	return fmt.Sprintf("%slive", models.Prefix)
}

type EnumSportType int

const (
	NONE EnumSportType = iota
	SOCCER
	BASKETBALL
)
